/*OWmq6Ugo6jPE4W7xoi1UXr4Tp1/n/Vi+P1J4TZWCBleFqRbMKl/Fh/GX//kGX13Z*/
/**
 * 编辑后事件，用于关联查询区条件
 * props: props
 * searchId: 查询区需要的searchId参数
 * field: 编辑后的key
 * val: 编辑后的value
*/
import fa from 'fa';
import ampub from 'ampub';

const { fa_components } = fa;

const { referLinkageClear } = fa_components.ReferLinkage;

import {
	//新增资产审批
	assetTransferSearch,
	//盘盈
	profitTransferSearch,
	//全部
	allTransferSearch,
	//资产租入
	contractTransferSearch,
	//工程转固
	proTransferSearch,
	//采购转固
	purTransferSearch,
	//资产卡片
	equipTransferSearch
} from '../constants';

// 参照过滤业务单元
const { components: { assetOrgMultiRefFilter: { isMultiCorpRefHandler, renderCompleteEvent } } } = ampub;

export default function(field, val, searchId) {
	let queryConfig = {
		searchId: searchId
	};
	if (searchId === assetTransferSearch) {
		queryConfig['linkageData'] = {
			//联动链
			//参照字段:['被过滤字段1'，'被过滤字段2']
			pk_org: [
				'pk_applyorg', //申请单位
				'pk_proposer', //申请人
				'pk_transactor', //经办人
				'pk_applydapt', //申请部门
				'bodyvos.pk_usedept', //使用部门
				'bodyvos.pk_mandept', //管理部门
				'bodyvos.pk_category', //资产类别
				'bodyvos.pk_card', //资产卡片
				'bodyvos.pk_assetuser' //使用人
			],
			pk_applyorg: [ 'pk_applydapt', 'pk_proposer' ]
		};
	} else if (searchId === profitTransferSearch) {
		queryConfig['linkageData'] = {
			pk_org: [
				'bodyvos.pk_usedept', //使用部门
				'bodyvos.pk_mandept', //管理部门
				'bodyvos.pk_assetuser' //使用人
			]
		};
	}
	if (field === 'pk_org') {
		referLinkageClear.call(this, this.props, field, queryConfig);
	}

	// 主组织编辑后：主组织关联参照字段控制其业务单元是否显示
	if (field === 'pk_org' || field === 'pk_fiorg_in') {
		switch (searchId) {
			case assetTransferSearch:
				renderCompleteEvent.call(this, this.props, searchId, 'pk_org', orgAfterEvent4assetTransfer.bind(this));
				break;
			case profitTransferSearch:
				renderCompleteEvent.call(this, this.props, searchId, 'pk_org', orgAfterEvent4profitTransfer.bind(this));
				break;
			case contractTransferSearch:
				renderCompleteEvent.call(
					this,
					this.props,
					searchId,
					'pk_fiorg_in',
					orgAfterEvent4contractTransfer.bind(this)
				);
				break;
			default:
				break;
		}
	}
}

/**
 * 全部
 * 主组织关联参照字段控制其业务单元是否显示
 * @param {*s} field 
 * @param {*} value 
 */
export function orgAfterEvent4allTransfer(field, value) {
	if (field === 'pk_org') {
		//获取账簿
		isMultiCorpRefHandler.call(this, this.props, value, allTransferSearch, []);
	}
}

/**
 * 新增资产审批
 * 主组织关联参照字段控制其业务单元是否显示
 * @param {*s} field 
 * @param {*} value 
 */
export function orgAfterEvent4assetTransfer(field, value) {
	if (field === 'pk_org') {
		//获取账簿
		isMultiCorpRefHandler.call(this, this.props, value, assetTransferSearch, [
			// 经办人
			'pk_transactor'
		]);
	}
}

/**
 * 盘盈
 * 主组织关联参照字段控制其业务单元是否显示
 * @param {*s} field 
 * @param {*} value 
 */
export function orgAfterEvent4profitTransfer(field, value) {
	if (field === 'pk_org') {
		//获取账簿
		isMultiCorpRefHandler.call(this, this.props, value, profitTransferSearch, []);
	}
}

/**
 * 资产租入
 * 主组织关联参照字段控制其业务单元是否显示
 * @param {*s} field 
 * @param {*} value 
 */
export function orgAfterEvent4contractTransfer(field, value) {
	if (field === 'pk_fiorg_in') {
		//获取账簿
		isMultiCorpRefHandler.call(this, this.props, value, contractTransferSearch, [
			// 经办人
			'pk_recorder_in',
			// 物料
			'equip.pk_material_v',
			// 物料
			'equip.pk_material',
			// 项目
			'pk_jobmngfil',
			// 项目
			'equip.pk_jobmngfil',
		]);
	}
}

/**
 * 工程转固
 * 主组织关联参照字段控制其业务单元是否显示
 * @param {*s} field 
 * @param {*} value 
 */
export function orgAfterEvent4proTransfer(field, value) {
	if (field === 'pk_org') {
		//获取账簿
		isMultiCorpRefHandler.call(this, this.props, value, proTransferSearch, [
			// 供应商
			'bodyvos.pk_supplier',
			// 经办人
			'pk_recorder',
			// 物料
			'bodyvos.pk_material',
			// 物料
			'bodyvos.pk_material_v',
			// 项目
			'pk_project',
			// 项目
			'bodyvos.pk_sub_project',
		]);
	}
}

/**
 * 采购转固
 * 主组织关联参照字段控制其业务单元是否显示
 * @param {*s} field 
 * @param {*} value 
 */
export function orgAfterEvent4purTransfer(field, value) {
	if (field === 'pk_org') {
		//获取账簿
		isMultiCorpRefHandler.call(this, this.props, value, purTransferSearch, [
			// 供应商
			'bodyvos.pk_supplier',
			// 经办人
			'pk_recorder',
			// 物料
			'bodyvos.pk_material',
			// 物料
			'bodyvos.pk_material_v',
			// 项目
			'pk_project',
			// 项目
			'bodyvos.pk_sub_project',
		]);
	}
}

/**
 * 资产卡片
 * 主组织关联参照字段控制其业务单元是否显示
 * @param {*s} field 
 * @param {*} value 
 */
export function orgAfterEvent4equipTransfer(field, value) {
	if (field === 'pk_org_fi') {
		//获取账簿
		isMultiCorpRefHandler.call(this, this.props, value, equipTransferSearch, [
			// 供应商
			'pk_supplier',
			// 项目
			'pk_jobmngfil',
			// 物料
			'pk_material_v'
		]);
	}
}

/*OWmq6Ugo6jPE4W7xoi1UXr4Tp1/n/Vi+P1J4TZWCBleFqRbMKl/Fh/GX//kGX13Z*/